#include "Menu.hh"

#ifdef DEBUG
#	include <iostream>
#	include <cstdlib> // std::exit()
#endif

// shd use a main menu then call invoke(right_id) method ?

Menu::Menu(unsigned char type)
  : _type(type)
{
  // glfw show cursor call

    // shd be in an Init method
//    switch (type)
//	{
//		case MENU_TITLE:
//			invokeMenu(_optListTitle);
//			break;
//
//		case MENU_BLACKMARKET: // is not an 'out-game' menu
//			//  -> shd not be here
//			invokeMenu(_optListBlackMarket);
//			break;
//
//		#ifdef DEBUG
//			default:
//				std::cerr << "Unknown menu type..." << std::endl;
//				std::exit(-1);
//		#endif
//	}
}

Menu::~Menu()
{
  // if (_pause)
  //  rm it (play annim: redraw in color / progrssive velocity ->| 1)

  // glfw hide mouse cursor
}


void Menu::invokeMenu()
{
  // if pause...


  // glfw show cursor call

  // build right optlist ?
}


void Menu::draw()
{
  drawBackground();

  // for each element of _optlist
//  for (int i = 0; i < _optlist.size(); ++i)
//  {
//    // draw a button for all option
//    // button type = f(current_option) [slider, click...]
//  }
}


void Menu::drawBackground()
{
  // apply texture on background
}


void Menu::nextOption()
{

}


// bad idea: options are more or less always carved in an object, made of steel
//void Menu::DrawOption(Option opt, int index)
//{
//  // display button texture
//
//  // write text on it
//
//  if (Physics2D.mouseIn(float mouse.x, float mouse.y, Coord target))
//  {
//    // display tooltip
//
//    // exec option if the user clicked it
//    if (mouseClick(opt))
//    {
//      opt.exec();
//    }
//  }
//}
